<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <script>
        const obj=[
            {
                data:{
                    name:'张三',
                    age:24
                }
            },204
        ]

        let newarr=[]

        function deepClone (obj) {
            const tempObj = Array.isArray(obj) ? [] : {}
            for (let key in obj) {
                if (typeof obj[key] === 'object') {
                    tempObj[key] = deepClone(obj[key]);
                } else {
                    tempObj[key] = obj[key]
                }
            }
            return tempObj
        }

       // 用来拷贝的函数
		function deepClone ( newObj, oldObj ) {

            // debugger;
            for ( let key in oldObj ) {
                // 不可以直接赋值：oldObj[key]可能是引用类型
                if ( oldObj[key] instanceof Array ) {// oldObj[key]是数组
                    // newObj[key]必须是数组
                    newObj[key] = [];
                    // 不确定数组里面是否还有引用类型数据，递归进去继续拷贝
                    deepClone( newObj[key], oldObj[key] );

                    
                } else if ( oldObj[key] instanceof Object ) {// oldObj[key]是对象
                    // newObj[key]必须是对象
                    newObj[key] = {}

                    deepClone( newObj[key],  oldObj[key])
                    // 再拷贝对象
                } else {
                    newObj[key] = oldObj[key];
                }
            }
        }
    </script>
</body>
</html>